/*
Autor: Jonathan Vindas Abarca
Fecha: 13/07/2012
Descripción: Este archivo contiene funciones javascript para la vista listarGuia.php,
hace uso de controlesDinamicos.js para crear etiquetas HTML dinamicamente.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/

function obtenerPermiso()
{
var accion='obtenerPermisoModificarGuia';
        var myvar;
        $.ajax({
            type: "GET",
            async: false, //Esto permite a my var retornar el resultado de sucess de $.ajax en otra variable
            url: "../controladores/ajaxControlador.php",
            data: {accion:accion},         
            success: function( respuesta ){
                myvar=respuesta;
                toString('respuesta javascript', respuesta);                
                if(respuesta == 1){
                    toString('positiva', respuesta);
                }else{
                    toString('negativa', respuesta);
                }                
  
                
            }
        });
                            toString('fuera del ajax', myvar);
        return myvar;         
}

function editarFilaGuia(tr)
{            
    var tienePermiso=obtenerPermisoGenerico('obtenerPermisoGenerico','modificarGuia');
    //Se debe guardar el codigo de la localidad y compañia
    if(tienePermiso==1)
    {
        var tds=tr.getElementsByTagName("td");       
        var codigoGuia=tds[0].innerHTML;
        
        //Con esto se podria editar la guia mostrando las descripciones de compania y division
        var nombreLocalidad=tds[2].getElementsByTagName("input");       
        var nombreDestino=tds[1].getElementsByTagName("input");        
        var codigoLocalidad=nombreLocalidad[0].value;
        var codigoCompania=nombreDestino[0].value;
        console.log("Localidad: "+codigoLocalidad);
        console.log("Destino: "+codigoCompania);
        //var codigoLocalidad=tds[2].innerHTML;
        //var codigoCompania=tds[1].innerHTML;
        var fecha=tds[4].innerHTML;
        var codigoVia=tds[3].getElementsByTagName("input");       
        var codigoTransportista=codigoVia[0].value;//input hidden codigo de transportista 
        var montoPagar=tds[5].innerHTML;
        tds[1].innerHTML='';
        tds[2].innerHTML='';
        tds[3].innerHTML='';
        tds[4].innerHTML='';        
        var cmbBodegaRemitente = crearComboBox("cmbBodegaRemitente","100px","","");    
        var cmbBodegaDestino = crearComboBox("cmbBodegaDestino","100px","cargarCompanias",codigoCompania);        
        var cmbTransportista = crearComboBox("cmbTransportista","100px","cargarVias",codigoTransportista);            
        cmbBodegaDestino.onchange= function(){
        dependenciaLocalidadesFG();
    }
        //console.log("hddCodigoTransportista: "+codigoTransportista);        
        var txtFecha=crearTextBox("txtFecha","text",fecha,"80px");    
       
        txtFecha.onkeyup=function(){
            var patron = new Array(2,2,4)
            mascara(this,'/',patron,true);
        }
        
        //tds[1].appendChild(cmbBodegaRemitente);
        //tds[2].appendChild(cmbBodegaDestino);
        tds[2].appendChild(cmbBodegaRemitente);
        tds[1].appendChild(cmbBodegaDestino);
        tds[3].appendChild(cmbTransportista);
        tds[4].appendChild(txtFecha);           
        cargarBodegaRemitentePorDefecto(codigoCompania,codigoLocalidad);
        //se elimina el link e imagen de editarGuia
        tds[8].removeChild(tds[8].lastChild);        
        //se crea la imagen
        var nuevaImg=document.createElement("img");
        nuevaImg.src='../vistas/Imagenes/Guardar.png';
        //se crea el link
        var linkAgregar = document.createElement("a");             
        linkAgregar.id="linkBotonModificarGuia";        
        linkAgregar.appendChild(nuevaImg);
        tds[8].appendChild(linkAgregar);
        linkAgregar.onclick = function () {     
        guardarGuiaModificada(codigoGuia, montoPagar, codigoLocalidad, codigoCompania);
    }
    }
    else
    {
        alert('Su usuario no posee permisos para esta accion.');
    }    
}

function mascara(d,sep,pat,nums){
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]	
	}
	if(nums){
		for(z=0;z<val2.length;z++){
			if(isNaN(val2.charAt(z))){
				letra = new RegExp(val2.charAt(z),"g")
				val2 = val2.replace(letra,"")
			}
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<pat.length; s++){
		val3[s] = val2.substring(0,pat[s])
		val2 = val2.substr(pat[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
				}
		}
	}
	d.value = val
	d.valant = val
	}
}

function dependenciaLocalidadesFG(){
            var division = document.getElementById("cmbBodegaDestino").value;
            var cantidadComboDivision=document.getElementById("cmbBodegaRemitente").length;
            var comboDivision=document.getElementById("cmbBodegaRemitente");
            //toString("division", division);
            var i=0;
            for(var contador = cantidadComboDivision ; contador >= 0; contador--) {
                //comboDivision.options[i]=null;
                comboDivision.remove(contador);
            }
            if(division=='001'){
                $('#cmbBodegaRemitente').append("<option value='0001'>Palmatica Coto</option><option value='0002'>Palmatica Quepos</option><option value='0004'>Palmatica Atlantico</option>");	                
            }
            if(division=='006'){
                $('#cmbBodegaRemitente').append("<option value='0001'>Aceitera Coto 54</option><option value='0002'>Aceitera Naranjo</option>");	
            }                    
            if(division=='003'){
                $('#cmbBodegaRemitente').append("<option value='0001'>Coto del Norte Coto</option><option value='0002'>Coto del Norte Quepos</option>");	
            }                    
            if(division=='009'){
                $('#cmbBodegaRemitente').append("<option value='0002'>Agrialim</option>");	
            }                    
        }
        
function cargarBodegaRemitentePorDefecto(division, localidad){
            if(division=='001'){
                $('#cmbBodegaRemitente').append("<option value='0001'>Palmatica Coto</option><option value='0002'>Palmatica Quepos</option><option value='0004'>Palmatica Atl&aacute;ntico</option>");	                
            }
            if(division=='006'){
                $('#cmbBodegaRemitente').append("<option value='0001'>Aceitera Coto 54</option><option value='0002'>Aceitera Naranjo</option>");	
            }                    
            if(division=='003'){
                $('#cmbBodegaRemitente').append("<option value='0001'>Coto del Norte Coto</option><option value='0002'>Coto del Norte Quepos</option>");	
            }                    
            if(division=='009'){
                $('#cmbBodegaRemitente').append("<option value='0002'>Agrialim</option>");	
            }                    
            var comboGuia=document.getElementById("cmbBodegaRemitente");
            var i=0;                    
            for (i=0;i<comboGuia.length;i++)  {                  
                if(comboGuia[i].value==localidad){
                    comboGuia[i].selected = true;                        
                }
            }
}

function limpiarCombo(){
    var cantidadComboDivision=document.getElementById("cmbBodegaRemitente").length;
    var comboDivision=document.getElementById("cmbBodegaRemitente");
    for(var contador = 0; contador > 0; contador--) {
                //comboDivision.options[i]=null;
                comboDivision.remove(contador);
   }
}

function guardarGuiaModificada(codigoGuia, montoPagar, codigoLocalidad, codigoCompania){    
    //traemos los codigos anteriores
    var link=document.getElementById("linkBotonModificarGuia");        
    var txtBodegaRemitente=document.getElementById("cmbBodegaRemitente").value;    
    var txtBodegaDestino=document.getElementById("cmbBodegaDestino").value;        
    var txtTransportista=document.getElementById("cmbTransportista").value;    
    var txtFecha=document.getElementById("txtFecha").value;       
    var selTag=document.getElementById("cmbBodegaRemitente");
    var nombreBodegaRemitente=selTag.options[selTag.selectedIndex].text;
    //console.log("txtFecha: "+txtFecha);        
    var fechaValor=validaFechaDDMMAAAA(txtFecha);    
    //console.log("esta correcta: "+fechaValor);        
    toString('esta correcta',fechaValor );
    if(fechaValor==false)
    {
        alert("Formato de la fecha incorrecto o fecha vacía.");
    }
    else
    {
        link.href="../vistas/paginaPrincipal.php?accion=modificarGuias&controlador=guias&codigoGuia="+codigoGuia+"&txtBodegaRemitente="+txtBodegaRemitente+"&txtBodegaDestino="+txtBodegaDestino+"&txtTransportista="+txtTransportista+"&txtFecha="+txtFecha+"&montoPagar="+montoPagar+"&nombreBodegaRemitente="+nombreBodegaRemitente+"&nombreLocalidadAnterior="+codigoLocalidad+"&nombreCompaniaAnterior="+codigoCompania;
    }
 //   ValidarFecha(txtFecha);
    //link.href="../vistas/paginaPrincipal.php?accion=modificarGuias&controlador=guias&codigoGuia="+codigoGuia+"&txtBodegaRemitente="+txtBodegaRemitente+"&txtBodegaDestino="+txtBodegaDestino+"&txtTransportista="+txtTransportista+"&txtFecha="+txtFecha+"&montoPagar="+montoPagar+"&nombreBodegaRemitente="+nombreBodegaRemitente;
}

function ValidarFecha(fecha){

var  ExpRegDate = /^\d{2}\/\d{2}\/\d{4}$/;
var res=true;
 
if (!ExpRegDate.test(fecha) ){
res=false;
}
return res;
}

function validaFechaDDMMAAAA(fecha){
    var dtCh= "/";
    var minYear=1900;
    var maxYear=2100;
    function isInteger(s){
        var i;
        for (i = 0; i < s.length; i++){
            var c = s.charAt(i);
            if (((c < "0") || (c > "9"))) return false;
        }
        return true;
    }
    
    function stripCharsInBag(s, bag){
        var i;
        var returnString = "";
        for (i = 0; i < s.length; i++){
            var c = s.charAt(i);
            if (bag.indexOf(c) == -1) returnString += c;
        }
        return returnString;
    }
    
    function daysInFebruary (year){
        return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
    }
    
    function DaysArray(n) {
        for (var i = 1; i <= n; i++) {
            this[i] = 31
            if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
            if (i==2) {this[i] = 29}
        }
        return this
    }
    
    function isDate(dtStr){
        var daysInMonth = DaysArray(12)
        var pos1=dtStr.indexOf(dtCh)
        var pos2=dtStr.indexOf(dtCh,pos1+1)
        var strDay=dtStr.substring(0,pos1)
        var strMonth=dtStr.substring(pos1+1,pos2)
        var strYear=dtStr.substring(pos2+1)
        strYr=strYear
        if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
        if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
        for (var i = 1; i <= 3; i++) {
            if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
        }
        month=parseInt(strMonth)
        day=parseInt(strDay)
        year=parseInt(strYr)
        if (pos1==-1 || pos2==-1){
            return false
        }
        if (strMonth.length<1 || month<1 || month>12){
            return false
        }
        if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
            return false
        }
        if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
            return false
        }
        if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
            return false
        }
        return true
    }
    if(isDate(fecha)){
        return true;
    }else{
        return false;
    }
}

function guardarLinea(tr){
    //alert("guardarLinea");
    var tds = tr.getElementsByTagName("td");
    var codigoGuia = tds[0].innerHTML;
    
    var comboEmbalaje = tds[1].getElementsByTagName("select");
    var opciones=comboEmbalaje[0].options;
    var index=comboEmbalaje[0].selectedIndex;  
    var codigoEmbalaje=opciones[index].value;
    
    var cantidad = tds[2].getElementsByTagName("input");    
    var precioUnitario = tds[3].getElementsByTagName("input");    
    var montoTotal = tds[4].getElementsByTagName("input");    
    
    document.getElementById("hddGuia").value = codigoGuia;    
    document.getElementById("hddEmbalaje").value = codigoEmbalaje;         
    document.getElementById("hddCantidadArticulos").value = cantidad[0].value;  
    document.getElementById("hddPrecioUnidad").value = precioUnitario[0].value;
    document.getElementById("hddMonto").value = montoTotal[0].value;           
}

function cargarComboLocalidad(){
    toString("cargarComboLocalidad","cargarComboLocalidad");
}

function recibirForm(){
    var selTag=document.getElementById("cmbBodegaRemitente");
    var x=selTag.options[selTag.selectedIndex].text;
    //alert("You selected: " + x);
    //toString("mensaje", x);
    document.getElementById("hddNombreLocalidad").value=x;
}

function pruebaCombo(){
    var selTag=document.getElementById("cmbBodegaRemitente");
    var x=selTag.options[selTag.selectedIndex].text;
    //alert("You selected: " + x);
    //toString("mensaje", x);
    document.getElementById("hddNombreLocalidad").value=x;
}

function limpiarModoInsertar(){
    var accion=document.getElementById("hddAccion");
    console.log(accion.value);
    
}

function buscarGuiaSegunNumeroOrden()
{document.getElementById("mostrarGuiasAsociadasOrden").style.display="none";                  
                $("#contenedorTablaArticuloDisponible").remove();
                var codigoOrdenCompra= $("#txtCodigoOrden").val();                                 
                //document.getElementById("mostrarGuiasAsociadasOrden").style.display="none";     
                var accion='buscarGuiasAsociadasOrden';                        
                //document.getElementById("mostrarGuiasAsociadasOrden").style.display="";                
                console.log("codigoOrden: "+codigoOrdenCompra);
                console.log("keyup: ");
                $.get("../controladores/ajaxControlador.php", {codigoOrdenCompra:codigoOrdenCompra,accion:accion },
                function(resultado)
                {
                    if(resultado == false)
                    {				
                        document.getElementById("mostrarGuiasAsociadasOrden").style.display="";
                        //alert("Error mostrar detalle orden compra");                         
                    }
                    else
                    {				
                        $('#mostrarGuiasAsociadasOrden').append(resultado);                                  
                        document.getElementById("mostrarGuiasAsociadasOrden").style.display="";
                        //$('#tabla_lista_paises').dataTable( { //CONVERTIMOS NUESTRO LISTADO DE LA FORMA DEL JQUERY.DATATABLES- PASAMOS EL ID DE LA TABLA
                        //"sPaginationType": "full_numbers" //DAMOS FORMATO A LA PAGINACION(NUMEROS)
                        //} );
                    }
                }
            
            );
            
            
}
